iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0
Software Development

我獨自升級之資料庫從入門到中階系列 第 12

Day12 資料庫原理-執行一條 select語句背後1

  • 分享至 

  • xImage
  •  

Day12 select 語句背後發生什麼事1

前面SQL介紹到一半,由於公司專案開始趕時間變少,我就想說先來分享之前稍微念過的一些資料庫內容,後面再回來繼續分享 SQL,應該也會有一些 springboot 操作資料庫的內容。

前言

會友資料庫原理這個短篇,要感謝小林coding這個網站(對岸資源,不喜勿入)。把知識用大量的圖片以及透徹的理解解釋的非常好,裡面有網路/作業系統/MySQL/Redis,我目前看過作業系統的兩三個章節跟MySQL的一小部分,大推。

Getting Started

select * from product where id = 1;
眾所皆知(沒有),資料庫以使用者的角度是一個 client-server 架構。常用的 client 端,有 mysql, psql 指令,或是 navicat/DBeaver/PgAdmin(族繁不及備載) 等等的 GUI client。server 的話就是資料庫本體,但講資料庫引擎有點不精確,個人從 building block 的角度,覺得可以看成四部分

  1. 處裡連線的 connector ( 就是處裡 socket 連線 )
  2. 處理 sql 語句的 sql parser
  3. 執行 sql 語句的 執行流程區塊(包含執行計畫)
  4. 底層儲存引擎( B+Tree資料結構 )

當然以上的分法只是一個入門的快速認識,更完整的說明可以直接在小林coding網站裡面看圖片

從架構上來看 MySQL 可以分成兩層:Server層(就是我上面提到的123)和儲存引擎層(4)

  1. server 層建立連接、分析、執行SQL。大部分MySQL的核心功能(使用者用的)都實作在這邊
  2. 儲存引擎 層負責資料儲存到硬碟上,從硬碟上讀取資料。5.5版本以上MySQL預設InnoDB為儲存引擎,就是使用B+Tree。但講精確一點是「主鍵」及「二級索引」使用B+Tree。

一次別太多,而且推推大家去看小林coding網站(只不過他最近有卡微信驗證碼qq,真的是有點小可惜,我是剛好有,真的內容很棒..),明天繼續分享 select 語句 經歷了哪些


上一篇
Day11 Except, In
下一篇
Day13 select語句經歷了哪些
系列文
我獨自升級之資料庫從入門到中階20
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言